Bytecode Instrumentation as an Aid in Understanding the Behavior of Java Persistent Stores
نویسندگان
چکیده
In this paper, we describe the use of BIT (Bytecode Instrumenting Tool) as an aid in understanding the behavior of persistent Java programs and evaluating the implementation of Java persistent stores. BIT is a set of Java classes that allow a user to build customized tools to instrument Java Virtual Machine (JVM) bytecodes. We built a customized tool using BIT to instrument Object Design Inc.’s Persistent Store Engine (PSE) for Java to generate behavior traces of important events in persistent store applications. These traces, in turn, can be used to better understand the behavior of Java persistent stores and investigate alternative implementations.
منابع مشابه
Secure Method Calls by Instrumenting Bytecode with Aspects
Today most mobile devices embed Java runtime environment for Java programs. Java applications running on mobile devices are mainly MIDP (Mobile Information Device Profile) applications. They can be downloaded from the Internet and installed directly on the device. Although the virtual machine performs type-safety checking or verifies bytecode with signed certificates from third-party, the progr...
متن کاملJava Bytecode Instrumentation Made Easy: The DiSL Framework for Dynamic Program Analysis
Many software development tools (e.g., profilers, debuggers, testing tools) and frameworks (e.g., aspect weavers) are based on bytecode instrumentation techniques. While there are many low-level bytecode manipulation libraries that support the development of such tools and frameworks, they typically provide only low-level abstractions and require detailed knowledge of the Java Virtual Machine. ...
متن کاملProfBuilder: A Package for Rapidly Building Java Execution Profilers
ProfBuilder is a collection of Java classes that provide an easy method for constructing Java execution profiling tools. By instrumenting Java bytecode, a programmer can measure dynamic properties of an application, such as bytecode count, number of memory allocations, cache misses and branches. ProfBuilder provides an easy way to create customized tools to measure these and other properties by...
متن کاملByCounter: Portable Runtime Counting of Bytecode Instructions and Method Invocations
For bytecode-based applications, runtime instruction counts can be used as a platform-independent application execution metric, and also can serve as the basis for bytecode-based performance prediction. However, different instruction types have different execution durations, so they must be counted separately, and method invocations should be identified and counted because of their substantial ...
متن کاملJBInsTrace: A tracer of Java and JRE classes at basic-block granularity by dynamically instrumenting bytecode
Understanding what happens during the runtime of a Java program is difficult. Tracking runtime flow can bring valuable information for program understanding and behavior analysis. Polymorphism, thread concurrency or even simple facts like the number of method invocations and the number of executed bytecodes are valuable information to track, but are difficult to compute outside the Java Virtual...
متن کامل